A data transfer process in a storage apparatus is performed by a server reading transfer data from a transfer source volume (storage area) and writing the read transfer data into a transfer destination volume (storage area).
Recently, in order to suppress the load of a server or the congestion of a communication line, information processing apparatuses such as servers having an offloaded data transfer function for causing a storage apparatus to perform a transfer process of data stored in the storage apparatus are known. As the offloaded data transfer function, for example, there is an Offloaded Data Transfer (ODX) mounted in Windows (registered trademark) Server 2012 of Microsoft (registered trademark) Corp. According to the ODX, an ODX command issued from a server is received, and a storage apparatus performs a data transfer process as a main body.
In the data transfer process according to the ODX, logically, the storage apparatus completes the transfer at a moment and returns a response to an ODX command to the server, and, physically, the storage apparatus transfers transfer data on the background. In addition, when a data access to an area of the transfer source/transfer destination of the ODX is made, the storage apparatus performs a so-called copy-on write/copy-on read operation in which, before a data access is made, transfer data of an update area relating to the data access is transferred. In this way, according to the ODX, a snapshot is generated by the storage apparatus, and the transfer (copy) is viewed to be completed at a moment from the server.
FIG. 29 is a diagram that illustrates an example of a data transfer process performed in a storage apparatus according to the ODX. As illustrated in FIG. 29, when a file (data) stored in the storage apparatus is copied, a server as a host apparatus issues a populate token that represents the range (area) of a transfer source and a write using token that represents the range (area) of a transfer destination. The storage apparatus performs a transfer process based on the above-described command received from the host apparatus.
Hereinafter, a transfer process that is started (initiated) inside the storage apparatus will be referred to as an ODX session, and two commands including the populate token and the write using token issued from the host apparatus will be collectively referred to as ODX commands (transfer commands).
Meanwhile, in a storage system including a plurality of storage apparatuses, as a technique for making a data backup, a remote equivalent copy (REC) is known. The REC is a function for mirroring data between storage apparatuses (between casings).
FIG. 30 is a diagram that illustrates an example of a data copy process between storage apparatuses according to the REC. According to the REC, an REC session is started (initiated) in accordance with a start (initiation) command from a host apparatus. In the REC session, a copy source volume (storage area) of the storage apparatus is in a copy processing state, and an equivalent process is performed in which the data of the copy source volume is copied to a copy destination volume (storage area) of another storage apparatus. During the copy process, since the copy destination volume has incomplete data, the storage apparatuses of the copy destination/copy source do not perform a suspending process accompanied with a suspend command.
In the copy processing state and the equivalent state, information changed in the copy source is reflected on the copy destination. In addition, in the equivalent state, when a suspend command is issued from the host apparatus, the copy source and the copy destination are in a suspended state, and a snapshot (copy destination volume) is generated. In the suspended state, an update to the copy source is not reflected on the copy destination, and the host apparatus can access the copy destination volume.
In addition, in the REC, in a case where a copy source storage apparatus is damaged (broken down) in the equivalent state, the host apparatus can continue the operation (failover) from the copy destination volume by issuing a suspend command to a copy destination storage device.
In copy modes supported by the REC, a synchronous mode and a consistency mode are included. Depending on such a copy mode, handling of write data relating to a write command at the time of receiving a write input/output (I/O) (write command) for a copy source volume from the host apparatus to the copy source storage apparatus differs.
The synchronous mode is an operation mode in which, in a case where the copy source storage apparatus receives a write command, write data relating to the write command is copied to the copy destination volume using the function of the REC, and then, a response to the write command is returned.
In the consistency mode, the copy source storage apparatus returns a response to the write command and then, stores the write data in a dedicated buffer (REC buffer). The write data stored in the REC buffer is gathered at the interval of several seconds and is transferred to the REC buffer of the copy destination storage apparatus, and the transferred write data is expanded in the copy destination volume from the REC buffer. In the consistency mode, since the copy source storage apparatus stores the write data in the REC buffer with the order of write commands being maintained, it is assured that all the write data up to a certain time point is reflected on the copy destination volume (protection of the order).
In addition, an EC in which mirroring such as the REC is performed inside the storage apparatus (inside the casing) is known. In the copy modes supported by the EC, a synchronous mode is included.
Furthermore, as another technology, there is a technology called transparent failover in storage apparatuses. According to this technology, mirroring is performed between storage apparatuses, and, in a case where one storage apparatus is damaged, automatic failover to the other storage apparatus is dynamically performed, and an access from the server is continued. According to the transparent failover, by maintaining a copy session in the same state in the storage apparatuses, a copy session after the failover is not manually reset, and, the copy session can be continued by a differential copy without re-performing an initial copy.
As a related technology, a technology for optimizing a backup process in a case where copy data acquired from a copy source is dually backed up in a copy destination is known (for example, see Japanese Laid-open patent publication No. 2010-160764).
FIG. 31 is a diagram that illustrates an example of a case where a copy source storage apparatus is broken down after a response to an ODX command in the copy source storage apparatus performing an REC. As illustrated in FIG. 31, when an ODX command is received from a host apparatus (see arrow (1)), the copy source (storage apparatus) of the REC starts an ODX session (see arrow (2)). Then, when logical transfer relating to the ODX command is completed, the copy source returns a response to the ODX command (see arrow (3)). At a time point when the copy source returns the response to the host apparatus, physical transfer of transfer data relating to the ODX command has not been completed in the ODX session, and the copy source and the copy destination are in a non-equivalent state as physical data.
At this time, a case will be considered in which a breakdown occurs in the copy source storage apparatus (see arrow (4)). In such a case, the host apparatus issues a suspend command to the copy destination (storage apparatus) of the REC. When the suspend command is received (see arrow (5-1)), the copy destination suspends an equivalent state being equivalent to the copy source (see arrow (5-2)) and returns a response to the host apparatus (arrow (5-3)).
In order to restore the copy source, the host apparatus issues a read I/O (read command) to the copy destination to which data of the copy source has been copied according to the REC. At this time, in the read command, a read instruction of the copy destination transfer data of the copy destination that corresponds to the transfer data of the copy source is also included. When the read command is received (see arrow (6)), the copy destination reads the copy transfer data designated in the read command and responses to the host apparatus (see arrow (7)).
However, since the transfer process according to the ODX is incomplete in the copy source, the copy of the transfer data to the copy destination according to the REC is also incomplete. Accordingly, even when an area designated in the read command of the copy destination is accessed, no copy destination transfer data is present, and accordingly, the reading operation fails or other data is read, and it is difficult to read the copy destination transfer data and to respond to the host apparatus.
In this way, in the copy source storage apparatus that performs the REC, in a case where the copy source storage apparatus is broken down after responding to the ODX command, it is difficult to acquire copy transfer data from the copy destination storage apparatus by host apparatus. Accordingly, there is a problem in that it is difficult to restore the copy destination storage apparatus based on the latest data by the host apparatus.
Until now, while both the volumes (storage areas) of the transfer source and the transfer destination of the transfer process (for example, the ODX) performed in the copy source storage apparatus have been described to be volumes of the copy source according to the copy between casings (for example, the REC), the above-described problem is not limited thereto. For example, the above-described problem may similarly occur also in a case where at least the transfer destination of the transfer process is the volume of the copy source according to the inter-casing copy. In addition, the above-described problem may similarly occur in a case where the volume of the copy source is broken down also in the storage apparatus that makes a copy between casings (for example, the EC). Furthermore, the above-described problem may similarly occur also in a case where the storage area of the transfer source and the storage area of the transfer destination of the transfer process are areas of the same volume (in a case where data transfer is performed within the volume).